//package com.shuqi.activity.viewport;
//
//import android.app.Activity;
//import android.content.Context;
//import android.content.res.TypedArray;
//import android.graphics.Color;
//import android.support.v4.view.PagerAdapter;
//import android.support.v4.view.ViewPager;
//import android.support.v4.view.ViewPager.OnPageChangeListener;
//import android.util.AttributeSet;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.ViewTreeObserver.OnPreDrawListener;
//import android.widget.RelativeLayout;
//import android.widget.TextView;
//
//import com.shuqi.activity.BookSquareActivity;
//import com.shuqi.activity.RanklistActivity;
//import com.shuqi.activity.SortDetailsActivity;
//import com.shuqi.activity.adapter.RanklistActivityAdapter;
//import com.shuqi.common.Constant;
//import com.shuqi.common.PageIndicator;
//import com.shuqi.common.utils.Util;
//import com.shuqi.controller.R;
//
///**
// * 滑动选项卡
// * 
// * @author Jianda.Yang
// * 
// * @Date 2014-1-10 下午8:23:27
// */
//public class RanklistSlidingView extends RelativeLayout implements PageIndicator, OnClickListener {
//
//    private View view;
//    private TextView tv1;
//    private TextView tv2;
//    private View animation;
//
//    private ViewPager mViewPager;
//    private PagerAdapter mPagerAdapter;
//    private OnSelectedListener listener;
//    /** 滑动时是否需要添加统计：防止边界滑动 */
//    private boolean isSetScrollPV = false;
//    /** 水平偏移量 */
//    private int horizontalOffset;
//
//    public RanklistSlidingView(Context context, AttributeSet attrs) {
//        super(context, attrs);
//        view =
//                LayoutInflater.from(context).inflate(R.layout.view_ranklistslidingview_title, this,
//                        false);
//        tv1 = (TextView) view.findViewById(R.id.sliding_tv1);
//        tv2 = (TextView) view.findViewById(R.id.sliding_tv2);
//        tv1.setOnClickListener(this);
//        tv2.setOnClickListener(this);
//
//        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.groove);
//        String titles = a.getString(R.styleable.groove_titleArray);
//        a.recycle();
//        setTexts(titles);
//        // 控件添加到定义View中
//        addView(view);
//        // 添加移动模块
//        initAnimationView();
//    }
//
//    /**
//     * 设置显示的内容,用"_"隔开
//     */
//    public void setTexts(String titles) {
//        String[] titleArray = titles.split("_");
//        tv1.setText(titleArray[0]);
//        tv2.setText(titleArray[1]);
//    }
//
//    /**
//     * 设置页面被切换至索引页的监听事件
//     * 
//     * @param listener
//     */
//    public void setOnSelectedListener(OnSelectedListener listener) {
//        this.listener = listener;
//    }
//
//    @Override
//    public void onPageScrollStateChanged(int arg0) {
//        if (arg0 == 0) {// 0是静止时的状态
//            isSetScrollPV = false;
//        } else if (arg0 == 1) {// 1是手指摁下时，并滑动的状态
//            isSetScrollPV = true;
//        }
//    }
//
//    @Override
//    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//        int width = tv1.getWidth();
//        final int leftMargin = (int) (position * width + width * positionOffset);
//        post(new Runnable() {
//            public void run() {
//                scrollTo(leftMargin);
//            }
//        });
//
//    }
//
//    private void scrollTo(int x) {
//        if (animation == null) {
//            return;
//        }
//        RelativeLayout.LayoutParams params = (LayoutParams) animation.getLayoutParams();
//        params.leftMargin = x + (horizontalOffset / 2);
//        animation.setLayoutParams(params);
//    }
//
//    private int initPosition;
//
//    /**
//     * 设置按钮的位置
//     * 
//     * @param site 从1开始
//     */
//    public void setSite(int site) {
//        // 设置选中的字体颜色大小
//        setTextColor(site);
//        initPosition = site;
//        if (animation != null) {
//            scrollTo(initPosition * tv1.getWidth());
//        }
//    }
//
//    /**
//     * 设置按钮的点击事件
//     * 
//     * @param site 从1开始
//     * @param listener
//     */
//    public void setOnClickListener(int site, OnClickListener listener) {
//        switch (site) {
//            case Constant.SLIDING_0:
//                tv1.setOnClickListener(listener);
//                break;
//            case Constant.SLIDING_1:
//                tv2.setOnClickListener(listener);
//                break;
//            default:
//                break;
//        }
//    }
//
//    /**
//     * 移动按钮到指定位置
//     * 
//     * @param targetPosition 目标位置
//     * @param hasAnim
//     */
//    public void moveAnim(final int targetPosition, final boolean hasAnim) {
//        if (animation == null) {
//            initAnimationView();
//            return;
//        }
//        int width = tv1.getWidth();
//        final int targetMargin = targetPosition * width;
//        if (hasAnim) {
//            RelativeLayout.LayoutParams params = (LayoutParams) animation.getLayoutParams();
//
//            final int sourceMargin = params.leftMargin;
//            new Thread() {
//                @Override
//                public void run() {
//                    for (int i = 1; i < 35; i++) {
//                        try {
//                            sleep(10);
//                        } catch (Exception e) {
//                        }
//                        final int t = i;
//                        ((Activity) getContext()).runOnUiThread(new Runnable() {
//                            @Override
//                            public void run() {
//                                scrollTo(sourceMargin + (targetMargin - sourceMargin) * t / 35);
//                            }
//                        });
//                    }
//                    try {
//                        sleep(20);
//                    } catch (Exception e) {
//                    }
//                    post(new Runnable() {
//                        @Override
//                        public void run() {
//                            scrollTo(targetMargin);
//                        }
//                    });
//                }
//            }.start();
//        } else {
//            scrollTo(targetMargin);
//        }
//        initPosition = targetPosition;
//    }
//
//    @Override
//    public void onPageSelected(int position) {
//        // 判断滑动完成后，改天字体大小和颜色
//        setTextColor(position);
//        if (listener != null) {
//            listener.onSelected(position);
//        }
//        if (mPagerAdapter == null) {
//            return;
//        }
//        if (mPagerAdapter instanceof RanklistActivityAdapter) {
//            ((RanklistActivityAdapter) mPagerAdapter).notifyOnPageSelected(position);
//        }
//    }
//
//    /**
//     * 设置顶部滑动文字颜色
//     * 
//     * @param index
//     */
//    private void setTextColor(int index) {
//        if (getContext() instanceof BookSquareActivity
//                || getContext() instanceof SortDetailsActivity
//                || getContext() instanceof RanklistActivity) {
//            tv1.setTextColor(getResources().getColor(R.color.sortslidingview_top_title_r));
//            tv2.setTextColor(getResources().getColor(R.color.sortslidingview_top_title_r));
//            switch (index) {
//                case Constant.SLIDING_0:
//                    tv1.setTextColor(Color.parseColor("#fffafafa"));
//                    break;
//                case Constant.SLIDING_1:
//                    tv2.setTextColor(Color.parseColor("#fffafafa"));
//                    break;
//            }
//        }
//    }
//
//    @Override
//    public void setViewPager(ViewPager view) {
//        if (mViewPager == view) {
//            return;
//        }
//        if (mViewPager != null) {
//            mViewPager.setOnPageChangeListener(null);
//        }
//        mPagerAdapter = view.getAdapter();
//        if (mPagerAdapter == null) {
//            throw new IllegalStateException("ViewPager does not have adapter instance.");
//        }
//        mViewPager = view;
//        mViewPager.setOnPageChangeListener(this);
//        invalidate();
//    }
//
//    @Override
//    public void setViewPager(ViewPager view, int initialPosition) {
//        setViewPager(view);
//        setCurrentItem(initialPosition);
//    }
//
//    @Override
//    public void setCurrentItem(int item) {
//
//    }
//
//    @Override
//    public void setOnPageChangeListener(OnPageChangeListener listener) {
//
//    }
//
//    @Override
//    public void notifyDataSetChanged() {
//
//    }
//
//    @Override
//    public void onClick(View v) {
//        if (mViewPager == null) {
//            return;
//        }
//        switch (v.getId()) {
//            case R.id.sliding_tv1:
//                mViewPager.setCurrentItem(Constant.SLIDING_0, true);
//                break;
//            case R.id.sliding_tv2:
//                mViewPager.setCurrentItem(Constant.SLIDING_1, true);
//                break;
//        }
//    }
//
//    private void initAnimationView() {
//        if (animation != null) {
//            return;
//        }
//        horizontalOffset = Util.dip2px(getContext(), 51.5f);
//        final int slidingHeight = Util.dip2px(getContext(), 3);
//        final int spaceBottom = Util.dip2px(getContext(), 1);
//        RanklistSlidingView.this.getViewTreeObserver().addOnPreDrawListener(
//                new OnPreDrawListener() {
//                    @Override
//                    public boolean onPreDraw() {
//                        final int width = tv1.getWidth() - horizontalOffset;
//                        if (animation == null) {
//                            animation = new View(view.getContext());
//                            animation.setBackgroundColor(getResources().getColor(
//                                    R.color.slidingview_top_title));
//                            // animation.setBackgroundResource(R.drawable.bg_groove2item);
//                            RelativeLayout.LayoutParams rl =
//                                    new RelativeLayout.LayoutParams(width, slidingHeight);
//                            rl.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
//                            rl.setMargins(0, 0, 0, spaceBottom);
//                            RanklistSlidingView.this.addView(animation, rl);
//                            scrollTo(initPosition * width);
//                        }
//                        RanklistSlidingView.this.getViewTreeObserver()
//                                .removeOnPreDrawListener(this);
//                        return true;
//                    }
//                });
//
//    }
//
//    public interface OnSelectedListener {
//        /**
//         * 切换至页面索引
//         */
//        void onSelected(int position);
//    }
//}
